#ifndef MOD_PDF_H
#define MOD_PDF_H


using namespace std;


class Mod_PDF:public Mod_out_handling
{
    protected:
   
    // in file declaration: ETP[mm]
    //virtual double calc(unsigned int i)=0;
    virtual int compute (time_intervall &ti);
    public:
    Mod_PDF(Mod_in *iinp);
    ~Mod_PDF();

};
class Mod_PDF_Hydraulics_KA5: public Mod_PDF
{
	protected:
        static Par_Maps  soil_hydraulic_tabs_KA4;
        static Par_Maps  soil_hydraulic_tabs_KA4_humus_zusatz;
        static int flag_soil_hydraulic_tabs_KA4;   
        static int flag_soil_hydraulic_tabs_KA4_humus_zusatz;
        int flag_Mod_PDF_Hydraulics_already_set;
  
        
        int adjust_FC_for_groundwater_table(int layer,double gw_table,timestamp &ts);
        int compute_William_parameter (int layer,timestamp &ts);
        
	public:
               map <string,int> IO_options;
        Mod_Soilphysics *mod_soilphysics;
        Mod_wc *mod_wc;   
            
            
	Mod_PDF_Hydraulics_KA5(	
                                map <string,int> &IO_options,
				Mod_in *iinp,
				Mod_Soilphysics *imod_soilphysics,
				Mod_wc *imod_wc);
        ~Mod_PDF_Hydraulics_KA5();
	int compute (time_intervall &ti);
	int initialize ();
};
#endif
	
		

